Content Addressable Memory (CAM) is a special type of computer memory used in high-speed searching operations. A CAM is designed such that the user supplies a data word and the CAM searches its entire memory to see whether that data word is stored in the CAM. If the data word is found, the CAM returns a list of one or more storage addresses where the word was found.
A CAM is designed to search its entire memory in a single operation, which makes a CAM faster than Random Access Memory (RAM) in most search operations. However, in a CAM, each individual memory bit in a parallel CAM must have its own associated comparison circuit to detect a match between the stored bit and the input bit. Further, match outputs from each cell in the data word must be combined to yield a complete data word match signal.
High performance caches require large and fully associative translation lookaside buffers (TLBs). In order to perform multiple N searches and M writes in a cycle in a high performance cache, one alternative is to create a multi-write-multi-search ternary CAM (TCAM) cell that would support the required performance. A TCAM allows three matching states, which include 1, 0, and “X” (i.e., don't care) for one or more bits in the stored data word. However, this approach requires dedicated TCAM cells, which is very costly in terms of hardware circuitry. Another alternative is to implement the TCAM using Bit-Stacked-Latches. However, the TCAM instances and multi-port options using the Bit-Stacked-Latches are area inefficient and limit performance.